home *** CD-ROM | disk | FTP | other *** search
- cpvw_clsPreviewImages.prototype=new cpvw_clsPreview;
- function cpvw_clsPreviewImages(_1,_2){
- this.parentDoc=_1;
- this.customSite=_2;
- this.convertLinks();
- this.prefetchDelay=6000;
- this.openDelayTime=800;
- this.closeDelayTime=0;
- this.actualImgUrl="";
- var _3=cpvw_docHandler.parentDoc.isPrefetchSet;
- if(_3==null||_3==false){
- var _4=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewPrefetch);
- if(_4=="yes"){
- cpvw_docHandler.parentDoc.isPrefetchSet=true;
- this.startPrefetch();
- }
- }
- }
- cpvw_clsPreviewImages.prototype.setup=function(){
- var _5=cpvw_previewHandler.getPreviewWindow();
- var _6=cpvw_previewHandler.getPreviewFrame();
- if(!cpvw_jsUtils.isFF2()){
- _6.loadURI("chrome://cooliris/content/coolirisPreviewImages.htm");
- }else{
- _6.setAttribute("src","chrome://cooliris/content/coolirisPreviewImages.htm");
- }
- _6.addEventListener("DOMContentLoaded",cpvw_previewHandler,false);
- var _7=this.parentDoc;
- if(_7.loadPiclensJS!=1){
- _7.loadPiclensJS=1;
- var _8=_7.createElement("script");
- _8.setAttribute("type","text/javascript");
- _8.setAttribute("src","http://lite.piclens.com/current/piclens.js");
- var _9=_7.getElementsByTagName("head")[0];
- if(_9){
- _9.appendChild(_8);
- }else{
- if(_7.body){
- _7.body.appendChild(_8);
- }
- }
- }
- };
- cpvw_clsPreviewImages.prototype.startPrefetch=function(){
- var _a=new XPCNativeWrapper(window._content,"document").document;
- if(_a!=this.parentDoc){
- this.prefetchIndex=this.prefetchLinks.length;
- }
- if(this.prefetchIndex>=this.prefetchLinks.length){
- return;
- }
- var _b=this;
- var _c=this.prefetchLinks[this.prefetchIndex];
- var _d=document.getElementById("frmPrefetch");
- if(_d==null){
- _d=document.createElement("browser");
- _d.setAttribute("id","frmPrefetch");
- _d.setAttribute("type","content");
- _d.setAttribute("src",_c);
- _d.setAttribute("style","visibility:hidden;overflow:auto;scrolling:yes;border:0px solid black;background-color:white;width:0px;height:0px;");
- document.getElementById("main-window").appendChild(_d);
- _d.addEventListener("load",function(_e){
- _b.afterPrefetch("onload");
- },true);
- }else{
- _d.setAttribute("src",_c);
- }
- _d.docShell.allowJavascript=false;
- _d.docShell.allowMetaRedirects=false;
- _d.docShell.allowAuth=false;
- _d.docShell.allowPlugins=false;
- _d.docShell.allowSubframes=false;
- this.prefetchTimer=setTimeout(function(){
- _b.afterPrefetch("timeout");
- },this.prefetchDelay);
- };
- cpvw_clsPreviewImages.prototype.afterPrefetch=function(_f){
- if(this.prefetchTimer){
- clearTimeout(this.prefetchTimer);
- }
- this.prefetchIndex++;
- if(this.prefetchIndex>=this.prefetchLinks.length){
- var _10=document.getElementById("frmPrefetch");
- document.getElementById("main-window").removeChild(_10);
- return;
- }
- this.startPrefetch();
- };
- cpvw_clsPreviewImages.prototype.convertLinks=function(){
- var doc=this.parentDoc;
- var _12=doc.getElementsByTagName("IMG");
- for(var i=0;i<_12.length;i++){
- _12[i].addEventListener("mouseover",function(evt){
- var _15=Components.classes["@cooliris.com/piclens/manager;1"];
- if(_15){
- cpvw_imageDocHandler.previewOpen(evt,this.href,this);
- }else{
- cpvw_imageDocHandler.initPreviewShow(evt,this.href,this);
- }
- },true);
- _12[i].addEventListener("mouseout",function(evt){
- conDump("mouseout");
- cpvw_imageDocHandler.initPreviewHide(evt);
- },true);
- if(cpvw_jsUtils.trimWhitespace(_12[i].src)!=""){
- this.prefetchLinks.push(_12[i].src);
- }
- }
- };
- cpvw_clsPreviewImages.prototype.initPreviewShow=function(evt,_18,img){
- this.clearTimer(this.hideTimer);
- var _1a=img.parentNode.href;
- this.closeDelayTime=0;
- var _1b=img.getAttribute("src");
- var uri=Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURI);
- uri.spec=this.parentDoc.URL;
- if(uri.host=="images.google.com"){
- _1b=img.getAttribute("src");
- }
- var _1d=cpvw_imageDocHandler.parentDoc.enablePreview;
- conDump("temp href = "+_1d);
- if(!_1d){
- return;
- }
- _1a=_1a;
- this.pageX=evt.pageX;
- this.pageY=evt.pageY;
- if(this.linkUrl==_1a&&this.isShowingPreview){
- conDump("same image url");
- return;
- }
- var _1e=new cpvw_previewSize(10000,10000,0,0);
- if(!this.isShowingPreview){
- cpvw_previewHandler.showPreview(_1e,this.customSite,true,true);
- }
- if(cpvw_imageDocHandler.coolirisOpen){
- return;
- }
- var _1f=cpvw_previewHandler.getPreviewFrame();
- if(_1f.contentDocument&&_1f.contentDocument.URL!="chrome://cooliris/content/coolirisPreviewImages.htm"){
- this.setup();
- }
- this.popTimer=setTimeout(function(){
- cpvw_imageDocHandler.showPreview(_1a,_1b);
- },this.openDelayTime);
- };
- cpvw_clsPreviewImages.prototype.initPreviewHide=function(evt){
- cpvw_imageDocHandler.clearTimer(cpvw_imageDocHandler.popTimer);
- conDump("In image hide "+cpvw_imageDocHandler.isShowingPreview+", "+cpvw_Delays.CLOSE_DELAY_TIME+", "+cpvw_imageDocHandler.closeDelayTime);
- if(!cpvw_imageDocHandler.isShowingPreview){
- return;
- }
- cpvw_imageDocHandler.hideTimer=setTimeout(function(){
- conDump("In image hide123 "+cpvw_imageDocHandler.isShowingPreview);
- cpvw_imageDocHandler.hidePreview();
- cpvw_imageDocHandler.coolirisOpen=false;
- },cpvw_Delays.CLOSE_DELAY_TIME+cpvw_imageDocHandler.closeDelayTime);
- };
- cpvw_clsPreviewImages.prototype.showPreview=function(_21,_22){
- if(this.popTimer==null){
- return;
- }
- this.clearTimer(this.hideTimer);
- var _23,_24;
- var _25="";
- if(this.customSite=="google_images"){
- var _26=_21.substring(_21.indexOf("?")+1,_21.length);
- var _27=_26.split("&");
- for(var i=0;i<_27.length;i++){
- if(_27[i].indexOf("imgurl")!=-1){
- var _29=_27[i].split("=");
- conDump("queryString = "+unescape(_29[1]),true);
- _25=unescape(_29[1]);
- break;
- }
- }
- }else{
- if(this.customSite=="yahoo_images"){
- var _26=_21.substring(_21.indexOf("imgurl"),_21.length);
- _26=unescape(_26);
- var _27=_26.split("&");
- for(var i=0;i<_27.length;i++){
- if(_27[i].indexOf("imgurl")!=-1){
- var _29=_27[i].split("=");
- _25="http://"+unescape(_29[1]);
- break;
- }
- }
- }
- }
- var _2a=this;
- cpvw_previewHandler.isContextMenu=false;
- _24=cpvw_previewHandler.getPreviewFrame();
- var _2b=_24.contentDocument;
- var _2c=_2b.getElementById("divImagePreview");
- _2c.innerHTML="";
- var _2d=_2b.createElement("IMG");
- _2d.setAttribute("id","tmpImgPreview");
- _2d.setAttribute("src",_22);
- var _2e=_2b.createElement("IMG");
- _2e.setAttribute("id","imgPreview");
- _2e.setAttribute("src",_25);
- _2e.setAttribute("style","visibility:hidden");
- _2c.appendChild(_2d);
- _2c.appendChild(_2e);
- _2d.addEventListener("load",_2a.previewOnLoadThumbnail,true);
- _2e.addEventListener("load",_2a.previewOnLoadRealImg,true);
- this.linkUrl=_21;
- this.actualImgUrl=_25;
- this.isShowingPreview=true;
- this.parentDoc.addEventListener("click",_2a.hidePreview,true);
- };
- cpvw_clsPreviewImages.prototype.previewOnLoadRealImg=function(evt){
- var _30=cpvw_previewHandler.getPreviewFrame();
- var _31=_30.contentDocument;
- cpvw_previewHandler.isLoaded=true;
- var _32=_31.getElementById("tmpImgPreview");
- _32.style.visibility="hidden";
- _32.style.display="none";
- var _33=_31.getElementById("imgPreview");
- _33.style.visibility="visible";
- cpvw_imageDocHandler.setPreviewDimensions(true);
- cpvw_previewHandler.numPages++;
- };
- cpvw_clsPreviewImages.prototype.previewOnLoadThumbnail=function(evt){
- var _35=cpvw_previewHandler.getPreviewFrame();
- var _36=_35.contentDocument;
- var _37=_36.getElementById("imgPreview");
- var _38=_36.getElementById("tmpImgPreview");
- if(_38.style.visibility!="hidden"){
- _38.style.visibility="visible";
- _38.style.display="block";
- _37.style.visibility="hidden";
- cpvw_imageDocHandler.setPreviewDimensions(false);
- }
- };
- cpvw_clsPreviewImages.prototype.hidePreview=function(){
- if(cpvw_imageDocHandler.hideTimer==null){
- return;
- }
- try{
- var _39=cpvw_previewHandler.hidePreview();
- if(_39){
- cpvw_imageDocHandler.isShowingPreview=false;
- }
- }
- catch(ex){
- }
- };
- cpvw_clsPreviewImages.prototype.setPreviewDimensions=function(_3a){
- frmPreview=cpvw_previewHandler.getPreviewFrame();
- var _3b=frmPreview.contentDocument;
- var doc=this.parentDoc;
- var _3d=document.getElementById("appcontent").boxObject.y+30;
- var _3e=this.pageX,_3f=this.pageY;
- this.dimPreview=new cpvw_previewSize();
- var _40=_3b.getElementById("imgPreview");
- var _41=_3b.getElementById("tmpImgPreview");
- if(_41!=null&&_41.style.display=="none"){
- _3a=true;
- }
- var _42=(_3e<doc.body.clientWidth/2)?doc.body.clientWidth-_3e-40:_3e-40;
- var _43=screen.availHeight-document.getElementById("appcontent").boxObject.y-120;
- var _44=_40.width/_40.height;
- var _45=_44>_42/_43?_42:_43*_44;
- var _46=_44>_42/_43?_42/_44:_43;
- _45=_45>_40.width?_40.width:_45;
- _46=_46>_40.height?_40.height:_46;
- this.dimPreview.width=(_3a)?_45:_41.width*1.5;
- this.dimPreview.height=(_3a)?_46:_41.height*1.5;
- this.dimPreview.top=_3d+5;
- if(_3a){
- _40.width=_45;
- _40.height=_46;
- }else{
- _41.width=this.dimPreview.width;
- _41.height=this.dimPreview.height;
- }
- if(_3e<doc.body.clientWidth/2){
- this.dimPreview.left=(_3e+40)<200?200:_3e+40;
- }else{
- this.dimPreview.left=10;
- }
- this.dimPreview.width+=20;
- this.dimPreview.height+=60;
- if(this.dimPreview.width<500){
- this.dimPreview.width=500;
- }
- var _47=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewFixedLoc);
- if(_47=="yes"){
- var _48=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewLoc);
- if(_48.indexOf(",")!=-1){
- this.dimPreview.left=parseInt(_48.split(",")[0]);
- this.dimPreview.top=parseInt(_48.split(",")[1]);
- }
- }
- cpvw_previewHandler.showPreview(this.dimPreview,this.customSite,true,true);
- };
- cpvw_clsPreviewImages.prototype.startPiclensLite=function(){
- var doc=this.parentDoc;
- if(doc.loadPiclensJS!=1){
- doc.loadPiclensJS=1;
- var _4a=doc.createElement("script");
- _4a.setAttribute("type","text/javascript");
- _4a.setAttribute("src","http://lite.piclens.com/current/piclens.js");
- var _4b=doc.getElementsByTagName("head")[0];
- if(_4b!=null){
- _4b.appendChild(_4a);
- }else{
- if(doc.body!=null){
- doc.body.appendChild(_4a);
- }
- }
- }
- var _4c=this.parWindow;
- var _4d=[];
- var _4e=doc.getElementsByTagName("IMG");
- for(var i=0;i<_4e.length;i++){
- var img=_4e[i];
- var _51=img.parentNode.href;
- if(_51==null){
- continue;
- }
- var _52=img.getAttribute("src");
- var _53=_52;
- if(this.customSite=="google_images"){
- if(_52=="images_logo.gif"){
- continue;
- }
- var _54=_51.substring(_51.indexOf("?")+1,_51.length);
- var _55=_54.split("&");
- for(var j=0;j<_55.length;j++){
- if(_55[j].indexOf("imgurl")!=-1){
- var _57=_55[j].split("=");
- _53=decodeURI(_57[1]);
- break;
- }
- }
- }else{
- if(this.customSite=="yahoo_images"){
- if(_51.indexOf("images/view")==-1){
- continue;
- }
- var _54=_51.substring(_51.indexOf("imgurl"),_51.length);
- _54=unescape(_54);
- var _55=_54.split("&");
- for(var j=0;j<_55.length;j++){
- if(_55[j].indexOf("imgurl")!=-1){
- var _57=_55[j].split("=");
- _53="http://"+unescape(_57[1]);
- break;
- }
- }
- }
- }
- _4d.push({"src":_53,"thumbnailSrc":_52});
- }
- cpvw_objStats.sendButtonClickEvents("CoolirisLiteLaunch");
- setTimeout(function(){
- cpvw_jsUtils.showPiclensLite(_4c,doc.title,doc.URL,_4d,false);
- },1000);
- };
- cpvw_clsContextMenu.prototype=new cpvw_clsPreview;
- function cpvw_clsContextMenu(){
- this.selectStr="";
- this.siteType="";
- this.menuType="";
- this.openDelayTime=1000;
- }
- cpvw_clsContextMenu.prototype.initPreviewShow=function(_58,how,evt){
- cpvw_objContextMenu.clearTimer(cpvw_objContextMenu.hideTimer);
- var _5b=this.selectStr;
- cpvw_subSearchBar.selectedText=this.selectStr;
- var _5c=cpvw_contextSitesTreeView.getUrl(_58.value,_5b);
- this.menuType="right-click";
- if(how=="click"){
- var _5d=cpvw_prefHandler.getPref(cpvw_Prefs.prefCMenuItems);
- var _5e=_5d.split(",");
- cpvw_objStats.sendButtonClickEvents("SearchMenuItemInTab : "+_5e[parseInt(_58.value)].toString());
- getBrowser().selectedTab=getBrowser().addTab(_5c);
- evt.stopPropagation();
- return;
- }
- var _5f=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewEnable);
- if(_5f=="no"){
- return;
- }
- if(_5c==this.linkUrl&&this.isShowingPreview){
- this.setPreviewDimensions();
- return;
- }
- this.parentDoc.addEventListener("click",cpvw_objContextMenu.initPreviewHide,false);
- var _5d=cpvw_prefHandler.getPref(cpvw_Prefs.prefCMenuItems);
- var _5e=_5d.split(",");
- if(cpvw_jsUtils.trimWhitespace(_5e[_58.value].toString())=="cooliris"){
- cpvw_previewHandler.dimPreview.width=950;
- cpvw_previewHandler.dimPreview.height=675;
- cpvw_previewHandler.pushpin=true;
- cpvw_previewHandler.updatePushpinIcon();
- cpvw_previewHandler.changeDimensions(cpvw_previewHandler.dimPreview.left,cpvw_previewHandler.dimPreview.top,cpvw_previewHandler.dimPreview.width,cpvw_previewHandler.dimPreview.height,true);
- this.popTimer=setTimeout(function(){
- cpvw_objContextMenu.showPreview(_5c,_58.value);
- cpvw_objStats.sendButtonClickEvents("Cooliris");
- },this.openDelayTime);
- }else{
- this.popTimer=setTimeout(function(){
- cpvw_objContextMenu.showPreview(_5c,_58.value);
- },this.openDelayTime);
- }
- this.dispTimer=setTimeout(function(){
- cpvw_objContextMenu.displayPreview();
- },this.dispDelayTime);
- };
- cpvw_clsContextMenu.prototype.initPreviewHide=function(evt){
- cpvw_objContextMenu.clearTimer(cpvw_objContextMenu.popTimer);
- cpvw_objContextMenu.clearTimer(cpvw_objContextMenu.dispTimer);
- if(!cpvw_objContextMenu.isShowingPreview){
- return;
- }
- cpvw_objContextMenu.hideTimer=setTimeout(function(){
- cpvw_objContextMenu.hidePreview(false);
- },cpvw_Delays.CLOSE_DELAY_TIME);
- };
- cpvw_clsContextMenu.prototype.showPreview=function(_61,_62){
- if(this.popTimer==null){
- return;
- }
- var _63=cpvw_prefHandler.getPref(cpvw_Prefs.prefCMenuItems);
- var _64=_63.split(",");
- cpvw_objStats.sendButtonClickEvents("SearchMenuItem : "+_64[parseInt(_62)].toString());
- var _65,_66;
- this.linkUrl=_61;
- this.setPreviewDimensions();
- this.siteType=_62;
- cpvw_previewHandler.isContextMenu=true;
- _66=cpvw_previewHandler.getPreviewFrame();
- _66.setAttribute("src",this.linkUrl);
- _66.removeEventListener("load",cpvw_previewHandler.pageLoad,true);
- _66.addEventListener("load",cpvw_previewHandler.pageLoad,true);
- this.isShowingPreview=true;
- };
- cpvw_clsContextMenu.prototype.displayPreview=function(){
- if(this.dispTimer==null){
- return;
- }
- if(this.dimPreview==null){
- this.setPreviewDimensions();
- }
- cpvw_previewHandler.showPreview(this.dimPreview);
- cpvw_subSearchBar.showSearchBar();
- };
- cpvw_clsContextMenu.prototype.setPreviewDimensions=function(){
- var doc=this.parentDoc;
- var _68=document.getElementById("appcontent").boxObject.y+30;
- cpvw_objContextMenu.dimPreview=new cpvw_previewSize();
- var _69=document.getElementById("contentAreaContextMenu");
- if(_69.boxObject.x>doc.body.clientWidth/2){
- cpvw_objContextMenu.dimPreview.left=10;
- cpvw_objContextMenu.dimPreview.width=_69.boxObject.x-20;
- }else{
- cpvw_objContextMenu.dimPreview.left=_69.boxObject.x+_69.boxObject.width+10;
- cpvw_objContextMenu.dimPreview.width=(doc.body.clientWidth)-(_69.boxObject.x+_69.boxObject.width)-20;
- }
- this.dimPreview.top=_68;
- var _6a=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewFixedLoc);
- if(_6a=="yes"){
- var _6b=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewLoc);
- if(_6b.indexOf(",")!=-1){
- this.dimPreview.left=parseInt(_6b.split(",")[0]);
- this.dimPreview.top=parseInt(_6b.split(",")[1]);
- }
- }
- this.dimPreview.height=document.getElementById("appcontent").boxObject.height-45;
- };
- cpvw_clsContextMenu.prototype.previewOnLoad=function(){
- var _6c=cpvw_objContextMenu.siteType;
- var _6d=cpvw_previewHandler.getPreviewFrame();
- if(_6d==null){
- return;
- }
- var _6e=_6d.contentDocument;
- };
- cpvw_clsContextMenu.prototype.highlightText=function(how){
- var _70="";
- var _71=cpvw_previewHandler.getPreviewFrame();
- if(_71.contentDocument!=null&&_71.contentDocument.body!=null){
- _70=cpvw_objContextMenu.selectStr;
- if(_70==""){
- return;
- }
- this.arrHighlightText=_70.split(" ");
- if(this.arrHighlightText==null){
- return;
- }
- if(how=="show"){
- for(var i=0;i<this.arrHighlightText.length;i++){
- this.highlightWord("#FFFF99","black",this.arrHighlightText[i],_71.contentWindow);
- }
- this.doneHighlight=true;
- }else{
- for(var i=0;i<this.arrHighlightText.length;i++){
- this.removeHighlight(this.arrHighlightText[i],_71.contentWindow);
- }
- this.doneHighlight=false;
- }
- }
- };
- var cpvw_objContextMenu=new cpvw_clsContextMenu();
-
-